/**
 * 
 */
package com.jiang.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Set;

/**
 * @author Administrator
 * @dao持久层接口规范，抽离出来通用的一些方法，让其他的dao接口继承, 通用的CRUD就不在重复写
 * <li>注意方法的定义规范，使用doCreate() doRemove() doFind() doGet() doUpdate()</li>
 * <li>在业务层使用save() delete() find() get() update()</li>
 * <li>dao层的数据类型都使用包装类型</li>
 */
public interface IDAO<K, V> {

	// 增加方法
	public Boolean doCreate(V vo) throws SQLException;
	// 删除方法
	public Boolean doRemove(V vo) throws SQLException;
	// 批量删除
	public Boolean doRemoveBatch(Set<K> ids) throws SQLException;
	// 修改方法
	public Boolean doUpdate(V vo) throws SQLException;
	// 通过id查询数据
	public V  doFindById(K id) throws SQLException;
	// 查询所有
	public List<V> doFindAll() throws SQLException;
	// 分页查询
	public List<V> doFindAllSplit(Integer currentPage, Integer lineSize) throws SQLException;
	// 分页模糊查询
	public List<V> doFindAllSplit(Integer currentPage, Integer lineSize, String column, String keyWord) throws SQLException;
	// 统计全部数据总量
	public Integer getAllCount() throws SQLException;
	// 按条件统计数据总量
	public Integer getAllCount(String column, String keyWord) throws SQLException;
}
